Automatic gain control (AGC) is an electronic system found in many types of devices including, for example, amplifier circuits. AGC circuitry is used is to control the gain of a system in order to maintain adequate performance over a range of input signal levels.
There are two general types of gain control in terms of how the gain varies in response to an applied control signal; analog and digital. Analog AGC circuits use an analog gain control signal to continuously vary the gain of a circuit. Digital AGC circuits use instead a digital control signal lines to define a plurality of gain values steps to discretely set the gain of a circuit being controlled. Analog AGC circuits may be relatively simple to implement but then have significant disadvantages including lesser accuracy, precision and noise than equivalent digital circuitry. While digital AGC circuits may be superior in the aforementioned areas, they tend to be more complex and, depending on resolution, may generate parasitic signal outputs caused by discontinuities resulting from digital output switching operations.
Practical implementations of analog AGC circuits may be quite complex so as to compensate for various drawbacks and disadvantages. One problem results from the difficulty of accurately and precisely generating an analog control signal or regulating the operation of a circuit using an analog control signal such that the resulting gain will be exactly a specific value. Lack of precision may be due to process variations during circuit production, circuit mismatches, and other variations that may be difficult to control. For example, if a 2.5 volt gain control signal is applied to a circuit, it may be difficult to guarantee that the resulting circuit gain will be exactly 10 dB; it might easily be 10 dB plus or minus a half a dB. Another problem inherent in analog control is the nature of the control signal. That is, some parameter of the control signal, such as voltage, is used to control circuit gain. Thus, any noise (i.e., changes to the voltage caused by spurious signals, thermal effects, and/or other phenomenon) introduced into the signal affecting the control parameter will result in noise being introduced into the controlled signal. In effect, the AGC can act as an amplitude modulator, introducing noise into the output or the circuitry (e.g., amplifier) being controlled.
Digital circuitry generally provides enhanced control capabilities. For example, a digital code of 10 might be programmed or otherwise interpreted to result in a circuit gain of exactly 10 dB, while setting the digital code to one less, i.e., 9, might result in a gain of exactly 9 dB. However, unlike analog signals, digital signals do not rely on a continuously variable signal parameter to transmit control information but on binary signal conditions typically corresponding to high and low signal levels. Thus, digital AGC circuits employ a number of switches to effect gain changes in a number of discrete steps. Instead of a continuous change in gain possible using an analog circuit, digital AGC uses a number of finite, discrete and therefore discontinuous steps. However, as explained below, because gain is varied discontinuously with essentially instantaneous, stepwise changes, a number of problems are created that may cause the controlled and/or associated circuitry to malfunction or exhibit degraded performance.
In contrast to analog circuits, implementations of digital AGC often include only high or low level control voltages such that control signals generated by a digital AGC circuit are relatively immune from or resistant to externally produced noise and noise creating phenomenon. The digital signals themselves are inherently immune from or tolerant of noise, each representing either of two binary signal states rather than a continuum of signal levels, i.e., discrete steps with no valid levels in between. These characteristics result in little or no opportunity for parasitic amplitude modulation of the output signal of the associated circuitry being controlled.
One issue to be addressed in the design of a digital control circuit (such as a digital AGC) is the resolution to be supported, i.e., the number of bits used to control the output and the step size or sizes between increments. The smaller the step size used, the larger the attenuator area needed, since more bits imply more circuitry responsive to those bits. To minimize cost it becomes desirable to use only that resolution required for the specified application by using large digital steps. However, large steps result in large instantaneous or nearly instantaneous changes in gain. The resultant “step function” in the amplitude of the controlled signal may cause abnormal or faulty operation of other circuits. For example, when an AGC circuit is used as part of a television tuner, operation of a demodulator circuit may be adversely affected (e.g., the demodulator may “lose lock”) by signal discontinuities caused by a step function. This step function is a result of digital switching implemented by a number of switching circuits comprising the digital control circuit, each switch causing a discrete change in gain. Typically each signal line represents some weighted value with respect to the other lines. For example, each signal line may control gain in a discrete amount that is some power of two. Activation of any signal line results in an almost instantaneous level change in the form of a step function that causes spurious signals to be generated, possible “over-shoot”/“under-shoot” of the circuit being controlled, and similar and/or related problems.